
//自动类型转换的使用细节
public class test_53 {
    public static void main(String[] args) {
        //1.有多种类型的数据混合运算时
        // 系统首先自动将所用数据转换成容量最大的那种数据类型，然后在进行计算
        int n1=10;
        //float n2=n1+1.1;    error  运算结果是double类型，double转换到float可能有损失
        float n3=(float)(n1+1.1);
        float n4=n1+(float)1.1;
        float n5=n1+1.1F;

        //2.（byte，short）和char之间不会互相自动转换
        //当把具体数赋给byte时，（1）先判断该数是否在byte范围内，如果是就可以
        byte n6=10; //对，-128~127
        //byte n7=1;
        //char n8=n7;   error

        //3.byte,short,char  三者可以计算，在计算机里首先转换为int类型
        byte n9=1;
        byte n13=1;
        short n10=1;
        //short n11=n9+n10;  error  n9+n10 => int
        //byte n14=n9+n13;   error  n9+n13 => int
        int n12=n9+n10;
        System.out.println(n12);

        //4.boolean 不参与转换
        boolean pass=true;
        //int num100=pass;  error   boolean无法转换为int

        //自动提升原则：表达式结果的类型自动提升为  操作数钟最大的类型
        //看一道题
        byte n14=1;
        short n15=100;
        int n16=1;
        float n17=1.1F;
        float n18=n14+n15+n16+n17;
        double n19=n14+n15+n16+n17;
        System.out.println(n18);
        System.out.println(n19);

    }
}